perm filename CODE4.FAI[NEW,LCS]9 blob
sn#496792 filedate 1980-01-30 generic text, type T, neo UTF8
00100 TITLE ITMSUB
00200 INTERNAL ITMSUB,OLDTOP
00300 EXTERNAL BM,NOZERO,LINX,ROFF,CENTX,STF,LINES,.COMM.
00400 EXTERNAL DAT,RHORZ,CLEFS,PLTR,MIN,POSI,ALF,RDRAW
00500 DEFINE R9 <.COMM.+=10 >↔ DEFINE R8<.COMM.+=9 >
00600 DEFINE J2 <.COMM.+3 >↔ DEFINE J10 <.COMM.+=31 >
00700 DEFINE J7 <.COMM.+=28 >
00800 OLDTOP: 0
00900 ; 00300 SUBROUTINE ITMSUB
01000 ; 00400 IMPLICIT INTEGER(A-Q,S-Z)
01100 ; 00500 REAL DIS,DISX,HGT,POS,CENTR,STFF,HGT1,XDIS
01200 ; 00600 COMMON/STF/RSTFAC(0/7),RSTJ2/MIN/MINI,RMINI
01300 ; 00700 COMMON R2,JA,CENTR,J2,RJQ(20),JQ(16),RE,RF,RG,RH/BM/RA,RC,RJY
01400 ; 00800 COMMON/POSI/STFF(0/7),JJ2,POS/PLTR/PLT,RHT,DIS,XDIS
01500 ; 00900 COMMON/ALF/QQ(3),RST7,RST18,R3Q,JY,RD,RX,RW,RJX,RJ,L,K,
01600 ; 01000 1 RJA,YY,DISX,HGT,RZ,INP(53)
01700 ; 01100 COMMON/DAT/RACNT(65),RDOT(17),XAC(7),RNOTE(22),RACCI(22),NACCI(3)
01800 ; 01200 EQUIVALENCE (J3,JQ(1)),(J4,JQ(2)),(J5,JQ(3)),(R5,RJQ(3)),(R11,
01900 ; 01300 1RJQ(9)),(R6,RJQ(4)),(J7,JQ(5)),(J8,JQ(6)),(J9,JQ(7)),(J10,JQ(8))
02000 ; 01400 1,(J11,JQ(9)),(J6,JQ(4)),(R9,RJQ(7)),(R8,RJQ(6)),(R3,RJQ(1))
02100 ; 01500 1 ,(R7,RJQ(5)),(R4,RJQ(2)),(R9,RJQ(7)),(R10,RJQ(8)),(RX3,RJQ(20))
02200 ; 01600 DATA R14/14.54/,RTF/3.0/,RHGT/48.0/,R2HGT/96.0/,RBM/.83/
02300 ; 01700 1,RDBR/ 3.5/,RBR/.33/,RBX/ 7.0/
02400 ITMSUB: 0 ;01800 C RDBR IS SPACER FOR DBL BAR.
02500 MOVSI 3,203700 ; 02000 RST7=RSTJ2*7.
02600 FMPR 3,STF+=8
02700 MOVEM 3,ALF+3 ; 02100 RST18=RSTJ2*18.
02800 MOVSI 02,205440
02900 FMPR 2,STF+=8
03000 MOVEM 02,ALF+4 ;2200 C TO COMPENSATE FOR NOTE #3 COMING AT POS=0
03100 MOVE 02,.COMM.+4 ;02400 R3Q=R3
03200 MOVEM 02,ALF+5 ; C NEXT DRAWS STRAIGHT LINES
03300 FMPR 3,.COMM.+5 ; 02700 RD=R4*RST7
03400 MOVEM 3,ALF+7 ; 02800 RA=0
03500 SETZM BM ; 02900 RX=RTF*RSTJ2+POS
03600 MOVE 02,[3.0]
03700 FMPR 02,STF+=8
03800 FADR 02,POSI+=9
03900 MOVEM 02,ALF+=8 ; XDIS=1./DIS > TO REPLACE ALL 1./DIS'S
04000 ; 03010 J10=J10*DIS*RSTJ2
04100 FLTR 4,J10 ;MOVE 4,.COMM.+=31
04200 FMPR 4,PLTR+2
04300 FMPR 4,STF+=8
04400 KIFIX 0,4 ;JSA 16,IFIX
04500 MOVEM 0,J10
04600 ; THICKNESS DEPENDS ON FINAL SIZE FACTOR (DIS) AND STAFF SIZE.(???!!)
04700 ;;; MOVEI 02,62 ; 03100 IF(J5.EQ.50)GO TO 300
04800 ;;; CAMN 02,.COMM.+=26
04900 MOVE 2,.COMM.+=26 ;IF(J5.EQ.50.OR.J5.EQ.150)GO TO 300
05000 CAIE 2,=50
05100 CAIN 2,=150 ;150 IS FOR 'PARTS' FEATURE - PUTS CRESC. IN ALL.
05200 JRST I300
05300 SKIPN .COMM.+7 ;03300 IF(R6.NE.0)GO TO 401
05400 SKIPE .COMM.+=28
05500 JRST I401 ; IF(J7.NE.0)GO TO 401
05600 ; 03500 C FOR BAR LINES
05700 MOVEI 02,54 ; 03600 4000 JA=44
05800 MOVEM 02,.COMM.+1 ;CODE # IS CHNGD SO BAR LINES WON'T AFFECT MAX. HGT.
05900 ; ↑↑↑↑↑↑↑↑↑ FOR VERTICAL WIGGLE (P6=0, P7=-1)
06000 SETZM DBR# ; 03900 DBR=0
06100 MOVE 2,.COMM.+=25 ;04000 IF(J4.LT.1000)GO TO 400
06200 CAIGE 2,1750
06300 JRST I400
06400 ; J4=1001 = DBL BAR, =1401 = DBL BAR WITH RT. ONE HEAVY: J5=1=DOTS ADDED
06500 ; 04500 DBR=J4/1000
06600 IDIVI 02,1750
06605 SKIPN .COMM.+=26 ;IF(J5.NE.0)GO TO RPTBAR
06610 CAIG 2,1 ;IF(DBR.LT.2)GO TO RPTBAR
06620 JRST RPTBAR
06630 AOS .COMM.+=26 ;J5=1
06640 CAIN 2,4 ;IF(DBR.EQ.4)DBR=1
06650 MOVEI 2,1
06660 MOVEM 2,DBR ;FOR REPEAT DBL.BAR WITH P5=0
06700 RPTBAR: MOVEM 02,DBR ;P4=2000=DOTS ON RIGHT, =3000=BOTH SIDES
06710 ;=4000=DOTS ON LEFT
06720
06800
06900 MOVEM 3,.COMM.+=25 ; 04600 J4=J4-DBR*1000
07000 ; 04700 C DBR=1 HEAVY BAR IS ON R
07100 ; 04800 9400 RD=RDBR+RDBR*RSTJ2
07200 I9400: MOVE 1,[3.5]
07300 FMPR 1,STF+=8
07400 FADR 1,[3.5]
07500 MOVEM 1,ALF+7 ; TO SPACE THIN BAR FROM HEAVY
07600 MOVE 02,.COMM.+=26 ;05000 IF(J5.EQ.0)GO TO 400
07700 JUMPE 2,I400 ; 05100 C NEXT ADDS REPEAT DOTS TO DBL BAR.
07800 MOVE 3,.COMM.+=25 ;05200 L=J4
07900 MOVEM 3,ALF+=12 ; 05300 RJ=L/100
08000 IDIVI 3,144
08100 FLTR 3,3 ;TLC 3,232000
08200 ; FADR 3,3 IF(RJ.EQ.0)RJ=6.*RSTJ2
08300 JUMPN 3,.+3
08400 MOVSI 3,203600
08500 FMPR 3,STF+=8
08600 MOVEM 3,ALF+=11 ; HEAVY BAR WILL BE 5 LINES WIDE.
08700 MOVE .COMM.+4 ; 05600 RZ=R3
08800 MOVEM ALF+=18 ; 05700 J4=0
08900 SETZM .COMM.+=25 ; MUST BE 0 FOR DOTS IN 'NOTWRT'
09000 SKIPE 2,DBR ; J5 IS IN 2 YET!
09100 JRST .+4 ; 05900 IF(DBR.EQ.0)DBR=J5
09200 CAIL 2,4 ;IF(J5.GT.3)J5=3 -- CATCHES TYPOS!
09300 MOVEI 2,3
09400 MOVEM 02,DBR ;IF(DBR.EQ.0)=J5
09500 ; 06000 J5=0
09600 SETZM .COMM.+=26 ; J5=1 RPT ↑, =2 RPT ↑, =3 RPT ↑
09700 FSC 1,1 ;06200 RJA=RD*2.
09800 MOVEM 1,ALF+=14
09900 ;6300 TO SPACE DOTS, NOT ACCURATE FOR VERY SMALL OR VERY LARGE SIZE FACTORS
10000 MOVEM 2,ALF+6 ; 06400 JY=DBR
10100 CAIGE 2,2 ; 06500 IF(DBR.LT.2)GO TO 8400
10200 JRST I8400
10300 FADR 3,ALF+=18 ; 06600 R3=RJA+RJ+RZ
10400 FADR 3,ALF+=14
10500 MOVEM 3,.COMM.+4
10600 I7400: MOVE 11,ALF+=12 ; 06700 7400 DO 3400 K=J2,MOD(L,100)+J2-1
10700 IDIVI 11,=100
10800 ADD 12,.COMM.+3
10900 SOJ 12, ; 12 IS LIMIT
11000 MOVE 15,.COMM.+3
11100 I4: MOVE 02,STF(15) ;06800 RSTJ2=RSTFAC(K)
11200 MOVEM 02,STF+=8 ; 06900 POS=STFF(K)
11300 MOVE 02,POSI(15)
11400 MOVEM 02,POSI+=9 ; 07000 R4=6
11500 MOVSI 02,203600
11600 MOVEM 02,.COMM.+5 ;07100 CALL CENTX
11700 JSA 16,CENTX ;7200 C SPACES DOTS OUT FROM BAR
11800 ;07300 CALL RDRAW(1,17.0,ALF+7OT,STF+=8,.COMM.+4,CENTR+RSTJ2,STF+=8)
11900 MOVE 11,STF+=8
12000 FADR 11,.COMM.+2
12100 JSA 16,RDRAW
12200 JUMP [1]
12300 JUMP [17.0]
12400 JUMP DAT+=69 ;EXTENDED FOR +65 TO +69 1/78
12500 JUMP STF+=8
12600 JUMP .COMM.+4
12700 JUMP 11
12800 JUMP STF+=8 ;7400 C GO GET THE DOT
12900 ; 07500 R4=8
13000 MOVSI 02,204400
13100 MOVEM 02,.COMM.+5 ;07600 CALL CENTX
13200 JSA 16,CENTX
13300 ;07700 3400 CALL RDRAW(1,17.0,ALF+7OT,STF+=8,.COMM.+4,CENTR+RSTJ2,STF+=8)
13400 I3400: MOVE 11,STF+=8
13500 FADR 11,.COMM.+2
13600 JSA 16,RDRAW
13700 JUMP [1]
13800 JUMP [17.0]
13900 JUMP DAT+=69
14000 JUMP STF+=8
14100 JUMP .COMM.+4
14200 JUMP 11
14300 JUMP STF+=8
14400 CAMGE 15,12
14500 AOJA 15,I4
14600 SOS 2,ALF+6 ; JY=JY-1
14700 CAIGE 2,2 ; IF(JY.LT.2)GO TO 4400
14800 JRST I4400
14900 I8400: MOVE 3,STF+=8
15000 FSC 3,2
15100 FADR 3,ALF+=14 ; R3=RZ-RJA-4.*RSTJ2
15200 FSBR 3,ALF+=18
15300 MOVNM 3,.COMM.+4 ; 08100 GO TO 7400
15400 JRST I7400 ;8200 C DO I NEED ANY MORE RESETS????
15500 I4400: MOVE 02,ALF+=12 ;08300 4400 J4=L
15600 MOVEM 02,.COMM.+=25 ;08400 J7=RJ*DIS
15700 MOVE 02,PLTR+2
15800 FMPR 02,ALF+=11
15900 KIFIX 0,2 ;JSA 16,IFIX
16000 ; JUMP 2
16100 MOVEM 00,.COMM.+=28
16200 JRST I5400 ; 08500 GO TO 5400
16300 I400: MOVE 02,.COMM.+=26 ;08600 400 IF(J5.NE.0)GO TO 9400
16400 JUMPN 02,I9400 ; 08700 K=J4/100
16500 MOVE 4,.COMM.+=25
16600 IDIVI 4,144
16700 ;8800 C K IS FOR SPACING OF THIN BAR IN HEAVY-THIN ORDER
16800 FLTR 4,4 ;8900 J7=K*DIS
16900 FMPR 4,PLTR+2
17000 KIFIX 0,4 ;JSA 16,IFIX
17100 ; JUMP 4
17200 MOVEM 00,.COMM.+=28
17300 ;9000 C J7=NUM OF STROKES -- BASED ON FINAL SIZE FACTOR (DIS)
17400 I5400: SKIPGE 2,.COMM.+=25 ;09100 5400 L=MOD(J4,100)
17500 SETZ 2, ; IF(J4.LT.0)J4=0
17600 IDIVI 2,=100 ;ABOVE FOR INVIS. BARS (AT PRINT TIME)
17700 ;;; SKIPN 3 ; 09200 IF(L.EQ.0)L=1
17800 ;;; SKIPA
17900 SKIPE 3
18000 SOJ 3, ; 09300 L=L+J2-1
18100 ADD 3,.COMM.+3
18200 MOVEM 3,ALF+=12
18300 ;9400 C J4=401 MAKES 4X THICK BARLINE - ONE STAFF
18400 MOVE 02,[3.0] ; 09500 RA=RTF
18500 MOVEM 02,BM
18600 MOVE 3,ALF+=12
18700 CAIG 3,7 ; 09600 IF(L.LE.7)GO TO 2400
18800 JRST I2400 ; 09700 L=7
18900 MOVEI 3,7 ; 09800 RA=300.
19000 MOVSI 02,211454
19100 MOVEM 02,BM ; FOR EXTENDING BARS ABOVE STAFF 7
19200 I2400: MOVE 02,STF(3) ; 10100 RZ=R3Q
19300 MOVEM 02,OLDTOP ; 10000 2400 OLDTOP=RSTFAC(L)
19400 MOVE 02,ALF+5
19500 MOVEM 02,ALF+=18 ; 10200 C SAVE IT FOR DBL RPT BAR.
19600 MOVSI 02,206700 ; 10300 OLDTOP=STFF(L)+(RA+56.)*OLDTOP
19700 FADR 02,BM
19800 FMPR 02,OLDTOP
19900 FADR 02,POSI(3)
20000 MOVEM 02,OLDTOP ; 10400 1400 RA=1
20100 I1400: MOVSI 02,201400
20200 MOVEM 02,BM ; 10500 IF(PLT.GE.0)GO TO 140
20300 MOVE 02,PLTR
20400 JUMPGE 02,I140 ; 10600 J7=J7+1
20500 SKIPGE .COMM.+=25
20600 JRA 16,(16) ;DON'T PRINT INVIS BARS. (USED BY 'PAGE')
20700 AOS J7
20800 ;; MOVSI 02,201400 ; 10700 RA=1./DIS
20900 MOVE 2,PLTR+3 ;RA=XDIS
21000 MOVEM 02,BM ; 10800 C BAR LINES PLOT AS DOUBLE THICKNESS
21100
21200 I140: MOVE 02,ALF+5 ; 10900 140 RJX=R3Q
21300 MOVEM 02,ALF+=10 ; 11000 42 CALL LINES(R3Q,ALF+=8,3)
21400 I42: JSA 16,LINES
21500 JUMP ALF+5
21600 JUMP ALF+=8
21700 JUMP [3] ;11100 RJ=-1.
21800 MOVN 02,[1.0]
21900 MOVEM 02,ALF+=11 ; 11200 RW=OLDTOP
22000 MOVE 02,OLDTOP
22100 MOVEM 02,ALF+=9 ; 11300 406 CALL LINES(RJX,OLDTOP,2)
22200 I406: JSA 16,LINES
22300 JUMP ALF+=10
22400 JUMP OLDTOP
22500 JUMP [2] ; 11400 IF(J10.EQ.0)GO TO 411
22600 MOVE 02,J10
22700 JUMPE 02,I411 ;P10 WILL THICKEN VERTICAL (OR MOSTLY VERTICAL) LINES.
22800 MOVEM 02,.COMM.+=28 ;1600 J7=J10
22900 SETZM J10 ; 11700 J10=0
23000 ;; MOVSI 02,201400 ; 11800 RA=1./DIS
23100 MOVE 2,PLTR+3 ;RA=XDIS
23200 MOVEM 02,BM ; 11900 411 IF(J7.GT.0)GO TO 409
23300 I411: MOVE 02,.COMM.+=28
23400 JUMPG 02,I409
23500 SKIPG DBR ; 12000 IF(DBR.LE.0)RETURN
23600 JRA 16,(16) ; 12100 OLDTOP=RW
23700 MOVE 02,ALF+=9
23800 MOVEM 02,OLDTOP ; 12300 RA=RZ-RD
23900 MOVN 02,ALF+7
24000 FADR 02,ALF+=18 ; 12400 IF(DBR.NE.1)RA=RJX+RD-1.
24100 MOVEI 3,1
24200 CAMN 3,DBR
24300 JRST .+4
24400 MOVN 02,[1.0]
24500 FADR 02,ALF+7
24600 FADR 02,ALF+=10
24700 MOVEM 02,BM ; 12600 R3Q=RA
24800 MOVEM 02,ALF+5 ; 12500 DBR=DBR-2
24900 MOVNI 02,2
25000 ADDM 02,DBR ; 12700 GO TO 1400
25100 JRST I1400
25200
25300 I409: SKIPN .COMM.+7 ;IF(R6.EQ.0)GO TO 1402) 12900 C FOR 'HEAVY' LINE.
25400 JRST I402 ;P10= NUM. OF ADDITIONAL LINES.
25500 SOS J7 ; ****** ONLY GOOD FOR SLOPEOF LESS THAN 45 DEG.
25600 MOVE 2,J7 ;J10=J7-1
25700 MOVEM 2,J10
25800 MOVE 2,BM ;GET SHIFT INCREMENT (DEPENDS ON FINAL SIZE)
25900 MOVE 1,ALF+=8
26000 FSBR 1,OLDTOP ;AC1 HAS AMOUNT OF Y SHIFT IN LINE
26100 MOVMS 1
26200 MOVE 0,ALF+5
26300 FSBR 0,ALF+=10 ;AC0 HAS AMOUNT OF X SHIFT IN LINE
26400 MOVMS
26500 FSBR 0,1 ;IF AC0-AC1 IS .GE.0 GO TO I1402
26600 JUMPGE I1402
26700 FADRM 2,ALF+5 ;MOVE RIGHT ONE SCAN LINE FOR NEXT VECTOR
26800 FADRM 2,ALF+=10 ;ALF+5 AND ALF+=10 ARE THE 2 X COORDS.
26900 JRST I42
27000 I1402: FADRM 2,ALF+=8 ;MOVE UP ONE SCAN LINE FOR NEXT VECTOR
27100 FADRM 2,OLDTOP ;ALF+=8 AND OLDTOP ARE THE 2 Y COORDS.
27200 JRST I42 ;GO DRAW IT
27300
27400 I402: MOVE 02,BM ; 13000 409 RJX=RJX+RA HEAVIER BAR LINES
27500 FADRM 02,ALF+=10 ; 13100 CALL LINES(RJX,OLDTOP,2)
27600 JSA 16,LINES
27700 JUMP ALF+=10
27800 JUMP OLDTOP
27900 JUMP [2] ; 13200 J7=J7-1
28000 SOS J7 ; 13300 OLDTOP=RW
28100 MOVE 02,ALF+=9
28200 SKIPGE ALF+=11 ; 13400 IF(RJ)OLDTOP=RX
28300 MOVE 2,ALF+=8
28400 MOVEM 2,OLDTOP ; 13500 RJ=-RJ
28500 MOVNS 00,ALF+=11
28600 JRST I406 ; 13600 GO TO 406
28700 ;13900 C DRAWS BAR LINES. J4>0 CAUSES FULL LINE.
28800 ; 14700 C FOR CRESC., DECRESC.
28900 I300: MOVE 2,.COMM.+=8 ; 14800 300 IF(R7.EQ.0)R7=2.3
29000 JUMPG 2,.+7
29100 MOVE 3,[2.3]
29200 JUMPE 2,.+4
29300 CAME 2,[-1.0]
29400 JRST .+3
29500 MOVNS 3
29600 MOVEM 3,.COMM.+=8 ; 14900 IF(R7.EQ.-1.)R7=-2.3
29700 MOVM 2,.COMM.+=8 ; 15000 RA=ABS(R7/2.0)*RST7
29800 FSC 02,777777
29900 FMPR 2,ALF+3
30000 MOVEM 2,BM ; 15100 C AMOUNT OF SPREAD
30100 MOVE 3,ALF+5 ; 15200 RJ=R3Q
30200 MOVEM 3,ALF+=11 ; 15300 RX=RX-RST18+RD
30300 MOVN 02,ALF+4
30400 FADR 02,ALF+7
30500 FADRM 02,ALF+=8 ; 15400 IF(R8.NE.0)GO TO 302
30600 MOVE 02,R8
30700 JUMPN 02,I302 ; 15500 C JUMP TO MAKE BOX
30800 JSA 16,RHORZ ; 15600 R6=RHORZ(R6)
30900 JUMP .COMM.+7
31000 MOVEM 00,.COMM.+7 ;15700 IF(R7)GO TO 301
31100 MOVE 02,.COMM.+=8
31200 JUMPL 02,I301 ; 15800 RJ=R6
31300 MOVEM 0,ALF+=11 ; 15900 R6=R3Q
31400 MOVEM 3,.COMM.+7 ;301 CALL LINX(RJ,ALF+=8+RA,.COMM.+7,ALF+=8)
31500 I301: MOVE 14,BM
31600 FADR 14,ALF+=8
31700 JSA 16,LINX
31800 JUMP ALF+=11
31900 JUMP 14
32000 JUMP .COMM.+7
32100 JUMP ALF+=8 ; 16100 CALL LINES(RJ,ALF+=8-RA,2)
32200 MOVN 14,BM
32300 FADR 14,ALF+=8
32400 JSA 16,LINES
32500 JUMP ALF+=11
32600 JUMP 14
32700 JUMP [2] ;FOR CRESC, DECRESC:4 POS1, STF, HGT, 50, POS1, +OR-N(0=2.3,-1=-2.3)
32800 SKIPGE PLTR ; 16400 IF(PLT.GE.0)RETURN
32900 SKIPGE .COMM.+=29
33000 JRA 16,(16) ; THIS MAKES ALL CRESC. DBL THICKNESS AT PRINT TIME.
33100 ; 16600 IF(J8)RETURN
33200 ; 16700 RX=RX+1./DIS
33300 MOVE 2,PLTR+3 ;RX=XDIS
33400 FADRM 02,ALF+=8 ; 16800 J8=-1
33500 SETOM .COMM.+=29 ; 16900 C FOR DOUBLE THICKNESS
33600 ; 17000 GO TO 301
33700 JRST I301 ; 17200 302 R8=R8*RST7
33800 I302: MOVE 3,ALF+3
33900 FMPRM 3,.COMM.+=9 ;17300 R9=R9*RST7
34000 MOVE 3,ALF+3
34100 FMPRB 3,R9 ; 17400 IF(R9.EQ.0)R9=R8
34200 JUMPN 3,.+3
34300 MOVE 3,.COMM.+=9
34400 MOVEM 3,.COMM.+=10 ;17500 C R9=0 MAKES SQUARE
34500 MOVE 02,.COMM.+=9 ;17600 R3=R3Q-R8/2.
34600 FSC 02,777777
34700 FSBR 02,ALF+5
34800 MOVNM 02,.COMM.+4 ;17700 RX=RX-R9/2.
34900 FSC 3,777777
35000 FSBR 3,ALF+=8
35100 MOVNM 3,ALF+=8 ; 17710 OLDTOP=RX
35200 MOVNM 3,OLDTOP ; IF(R11.NE.0)OLDTOP=OLDTOP+R11*RST7
35300 MOVE 02,.COMM.+=12
35400 JUMPE 02,.+3
35500 FMPR 02,ALF+3
35600 FADRM 02,OLDTOP ; R11 IS OFFSET FOR PARALLELAGRAM
35700 ; 17800 J10=J10
35800 ; 17900 C DRAWS BOX, CENTER IS IN MIDDLE
35900 ; 18000 C 4,POSI+=9,STF,NT#,50,0,0,,SIZ1↑BY NT#S↑,SIZ2
36000 I1302: MOVE 14,.COMM.+4 ;18100 1302 CALL LINX(R3,ALF+=8,.COMM.+4+R8,OLDTOP)
36100 FADR 14,.COMM.+=9
36200 JSA 16,LINX
36300 JUMP .COMM.+4
36400 JUMP ALF+=8
36500 JUMP 14
36600 JUMP OLDTOP ;18200 CALL LINES(R3+R8,OLDTOP+R9,2)
36700 MOVE 14,.COMM.+4
36800 FADR 14,.COMM.+=9
36900 MOVE 13,OLDTOP
37000 FADR 13,.COMM.+=10
37100 JSA 16,LINES
37200 JUMP 14
37300 JUMP 13
37400 JUMP [2] ; 18300 CALL LINES(R3,ALF+=8+R9,2)
37500 MOVE 14,ALF+=8
37600 FADR 14,.COMM.+=10
37700 JSA 16,LINES
37800 JUMP .COMM.+4
37900 JUMP 14
38000 JUMP [2] ; 18400 CALL LINES(R3,ALF+=8,2)
38100 JSA 16,LINES
38200 JUMP .COMM.+4
38300 JUMP ALF+=8
38400 JUMP [2]
38500 SKIPN J10 ; 18500 IF(J10.EQ.0)RETURN
38600 JRA 16,(16)
38700 SOS J10 ; 18600 J10=J10-1
38800 ; 18700 RJ=1./DIS
38900 MOVE 3,PLTR+3 ;RJ=XDIS
39000 MOVEM 3,ALF+=11 ; 18800 R3=R3-RJ
39100 MOVN 02,ALF+=11
39200 FADRM 02,.COMM.+4 ;18900 R8=R8+RJ+RJ
39300 FADR 3,ALF+=11
39400 FADRM 3,.COMM.+=9 ;19000 RX=RX-RJ
39500 FADRM 02,ALF+=8 ; 19010 OLDTOP=OLDTOP-RJ
39600 FADRM 02,OLDTOP ; 19100 R9=R9+RJ+RJ
39700 FADRM 3,.COMM.+=10 ;19200 GO TO 1302
39800 JRST I1302 ;TO THICKEN BOXES. ;1401 R4=2.0
39900 I1401: MOVSI 02,202400
40000 MOVEM 02,.COMM.+5 ;19600 C FOR HEAVY BRACK.
40100 MOVE 2,ALF+3 ; 19700 RA=RST7
40200 MOVEM 02,BM
40300 MOVN 02,BM ; 19800 RX=RX-RA
40400 FADRM 02,ALF+=8 ; 19900 C THE BOTTOM
40500 MOVNI 1,1 ; 20000 L=J4+J2-1
40600 ADD 1,.COMM.+=25
40700 ADD 1,J2
40800 MOVE 3,[3.0] ; 20100 R6=RTF
40900 CAIG 1,7 ; 20200 IF(L.LE.7)GO TO 4401
41000 JRST I4401
41100 MOVEI 1,7 ; 20300 L=7
41200 MOVSI 3,211454 ; 20400 R6=300.
41300 I4401: MOVE 2,POSI(1) ; 20500 4401 RA=STFF(L)
41400 MOVEM 02,BM ; SAVE FOR POS. OF BRACK. END ON UPPER STAFF.
41500 MOVE 02,STF(1) ; 20700 RJY=RSTFAC(L)
41600 MOVEM 02,BM+2 ; OLDTOP=RA+R6*RJY+RJY*56.+RJY*RBX
41700 FADR 3,[63.0]
41800 FMPR 3,BM+2
41900 FADR 3,BM
42000 MOVEM 3,OLDTOP ; 20900 C THE TOP
42100 MOVSI 02,204460 ; 21000 R5=9.5
42200 MOVEM 02,.COMM.+6 ;21100 GO TO 2401
42300 JRST I2401 ; 21300 C DASHES
42400 I401: MOVN 02,ALF+4 ; 21400 401 POS=POS-RST18
42500 FADRM 02,POSI+=9 ; 21600 IF(J7.LE.0)GO TO 407
42600 MOVE 02,.COMM.+=28
42700 JUMPLE 02,I407
42800 CAIN 2,4 ; 21700 IF(J7.EQ.4)GO TO 1401
42900 JRST I1401
43000 CAIE 2,3 ; 21800 IF(J7.NE.3)GO TO 4001
43100 JRST I4001
43200 ;21900 NEXT IS FOR VARIABLE LARGE BRACKET. P7=3 P10=THICK. P5=HGT P6=P3
43300 I2401: MOVEI 02,3 ; 22000 2401 JA=3
43400 MOVEM 02,.COMM.+1 ;22100 IF(J10.EQ.0)J10=4
43500 MOVE 02,J10
43600 JUMPN 02,.+5
43700 MOVSI 02,203600 ;6.0
43800 FMPR 2,PLTR+2 ;*DIS THICKNES FOLLOWS PLOTTER SIZE
43900 FMPR 2,STF+=8 ;*RSTJ2 AND STAFF SIZE
44000 KIFIX 2,2
44100 MOVEM 02,J10 ; DEFAULT VALUE FOR THICKNESS =4*SIZE FACT.
44200 MOVN 02,[0.33] ; 22300 R4=R4-RBR
44300 FADRM 02,.COMM.+5 ;22400 J9=0
44400 SETZM .COMM.+=30 ; 22500 J5=35
44500 MOVEI 02,43
44600 MOVEM 02,.COMM.+=26 ;22600 C THE NUM FOR THE LITTLE END ITEMS
44700 MOVSI 02,202600 ; 22800 R6=3
44800 MOVEM 02,.COMM.+7 ;22900 R7=0
44900 SETZM .COMM.+=8;DOES LOWER ONE FIRST. ITEM IS IN 'CLEFC.DMD' ON DAT.LCS
45000 SETZM R8 ;R8 MUST BE 0 FOR CLEFS (ELSE IT ACTIVATES THICKENER)
45100 MOVE 02,.COMM.+=29 ; 23100 IF(J8.NE.2)CALL CLEFS
45200 MOVEM 2,RH ;SAVE J8 IN RH (J8 WIPED OUT IN CLEFS)
45300 CAIE 02,2
45400 JSA 16,CLEFS ;P8=1=BOTTOM 1/2 BRACK. ONLY: =2=TOP 1/2 ONLY: 0=COMPLETE
45500 MOVN 3,[0.33] ;23300 R4=R5-RBR
45600 FADR 3,.COMM.+6
45700 MOVEM 3,.COMM.+5 ; 23400 R6=3
45800 MOVSI 02,202600
45900 MOVEM 02,.COMM.+7 ;23500 R7=-3
46000 MOVNM 02,.COMM.+=8 ;23600 C TURNS IT UPSIDE DOWN.
46100 MOVEI 02,4 ;23800 IF(J7.NE.4)GO TO 3401
46200 CAME 02,.COMM.+=28
46300 JRST I3401 ; 23900 POS=RA
46400 MOVE 02,BM
46500 MOVEM 02,POSI+=9 ; 24000 R4=R4*RJY/RSTJ2
46600 FMPR 3,BM+2
46700 FDVR 3,STF+=8
46800 MOVEM 3,.COMM.+5 ;TO ADJUST HEIGHT OF BRACK END WHEN STAVES ARE DIFF. SIZES.
46900 I3401: MOVEI 02,1 ; 24200 3401 IF(J8.NE.1)CALL CLEFS
47000 CAME 02,RH ; RH IS CURRENTLY J8 (INTEGER I.E.)
47100 JSA 16,CLEFS ;24300 R3Q=R3Q-12.0*RSTJ2
47200 MOVSI 02,204600
47300 FMPR 02,STF+=8
47400 FSBRM 02,ALF+5
47500 MOVNS 00,ALF+5 ; 24400 IF(J7.NE.4)GO TO 407
47600 MOVEI 02,4
47700 CAME 02,.COMM.+=28
47800 JRST I407 ; 24500 J7=0
47900 SETZM .COMM.+=28 ; 24600 GO TO 140
48000 JRST I140 ; 24800 4002 J5=5
48100 I4002: MOVEI 02,5 ;FOR CURVY BRACKET. P8 CAN CHANGE WIDTH.
48200 MOVEM 02,.COMM.+=26 ; 25100 J4=J4+J2-1
48300 MOVNI 3,1
48400 ADD 3,.COMM.+3
48500 ADDB 3,.COMM.+=25 ;R7=(.3136*RSTFAC(J4)+.0056*(STFF(J4)-STFF(J2)))/RSTJ2
48600 MOVE 02,[0.3136]
48700 FMPR 02,STF(3)
48800 MOVE 04,POSI(3)
48900 MOVE 03,J2
49000 FSBR 04,POSI(3)
49100 FMPR 04,[0.0056]
49200 FADR 02,4
49300 FDVR 02,STF+=8
49400 MOVEM 02,.COMM.+=8
49500 ;25300 .0056=.0392/7.(THE MAGIC NUM FOR VERT SIZE OF BRACK.) .3136=8*.0392
49600 ;25400 ADD DIST BETWEEN BOTTOM OF STAVES TO HEIGHT OF TOP STAFF
49700 MOVE 2,.COMM.+=9 ; 25500 IF(R6.EQ.0)R6=1.+R7/20.
49800 SETZM .COMM.+=9 ;***** USE P8 FOR WIDTH FACTOR!! *****
49900 SETZM .COMM.+=29 ;J8=0
50000 JUMPN 2,.+3 ;P6=P8; P8=0
50100 FDVR 02,[20.0]
50200 FADRI 02,201400
50300 MOVEM 02,.COMM.+7 ;25600 JA=3
50400 MOVEI 02,3
50500 MOVEM 02,.COMM.+1 ;25700 R4=2.3
50600 MOVE 02,[2.3]
50700 MOVEM 02,.COMM.+5 ;BECAUSE BRACK DOESN'T REALLY GO UP FROM 0 ?!?X*↑
50800 ; 25900 CALL CLEFS
50900 JSA 16,CLEFS ; 26000 RETURN
51000 JRA 16,(16)
51100 I4001: CAIN 2,5 ; 26200 4001 IF(J7.EQ.5)GO TO 4002
51200 JRST I4002 ; J7 IS IN AC2
51300 MOVE 02,.COMM.+=9 ;26300 IF(R8.LE.0)R8=.8
51400 JUMPG 02,.+3 ;NO NEG. NUMBS!!!! 2/78
51500 MOVE 02,[0.8]
51600 MOVEM 02,.COMM.+=9 ;26400 C P8 CAN SET SIZE OF DASH
51700 MOVE 02,[5.96] ; 26402 RZ=5.96*RSTJ2
51800 FMPR 02,STF+=8
51900 MOVEM 02,ALF+=18 ; 26405 RJ=R8*RZ
52000 FMPR 02,.COMM.+=9
52100 MOVEM 02,ALF+=11 ;26410 RZ=R9*RZ
52200 MOVE 3,.COMM.+=10
52300 FMPRM 3,ALF+=18
52400 SKIPN .COMM.+=10 ; 26420 IF(R9.EQ.0)RZ=RJ
52500 MOVEM 02,ALF+=18
52600 ;26430 P9 SETS SPACE BETWEEN DASHES. (CAN BE DIFFERENT FROM P8)
52700 ; 26440 R8=RJ
52800 MOVEM 02,.COMM.+=9 ;26450 R9=RZ
52900 MOVE 02,ALF+=18
53000 MOVEM 02,.COMM.+=10 ;26500 RD=RD+POS
53100 MOVE 02,POSI+=9
53200 FADRB 02,ALF+7 ; 26600 RJX=RD
53300 MOVEM 02,ALF+=10 ; 27100 RJY=RD
53400 MOVEM 02,BM+2
53500 ;26700 =1 =DASHES, P6=P3=VERTICAL; P4=P5=HORIZ.; OTHERWISE SLOPE.
53600 JSA 16,RHORZ ; 26800 J6=ROFF(RHORZ(R6))
53700 JUMP .COMM.+7
53800 MOVE 4,0
53900 JSA 16,ROFF
54000 JUMP 4
54100 KIFIX 0,0
54200 MOVEM 00,.COMM.+=27
54300 SUBM 0,.COMM.+=24 ; 26900 J3=J6-J3
54400 ; 27000 J4=J5-J4
54500 MOVE 2,.COMM.+=6 ;NOW J4=R5-R4 (J4 IS FLTING PT)
54600 FSBR 2,.COMM.+5
54700 MOVEM 2,.COMM.+=25 ; CHECKS FOR TILT, USED LATER
54800 FLTR 0,.COMM.+=27 ;MOVE .COMM.+=27 27200 C SAVE FOR THICK LINES
54900 ; TLC 0,232000 ; 27300 RA=J6
55000 ; FADR 0,0
55100 MOVEM 00,BM ; 27400 C RA IS HORIZ. GOAL FOR DASHES
55200 ; 27500 402 OLDTOP=POS+R5*RST7
55300 MOVE 02,ALF+3 ; LABEL 402 NOT USED
55400 FMPR 02,.COMM.+6
55500 FADR 02,POSI+=9
55600 MOVEM 02,OLDTOP ; 27600 IF(J4.EQ.0)GO TO 41
55700 MOVE 3,.COMM.+=25
55800 JUMPE 3,I41 ; 27700 RH=OLDTOP-RD
55900 ; 27800 C TOTAL HEIGHT DIFF.
56000 MOVN 3,.COMM.+4 ; 27900 RX=RA-R3
56100 FADR 3,BM
56200 MOVEM 3,ALF+=8 ; 28000 C TOTAL LENGTH DIFF.
56300 FSBR 2,ALF+7 ; 28100 RH=RH/RX
56400 FDVR 02,ALF+=8
56500 MOVEM 02,RH# ; 28200 41 L=3
56600 I41: MOVEI 02,3
56700 MOVEM 02,ALF+=12 ;28300 K=2
56800 MOVEI 02,2
56900 MOVEM 02,ALF+=13 ;28400 416 CALL LINES(R3Q,ALF+7,ALF+=12)
57000 I416: JSA 16,LINES
57100 JUMP ALF+5
57200 JUMP ALF+7
57300 JUMP ALF+=12 ; 28405 IF(J3.EQ.0)GO TO 412
57400 MOVE 02,.COMM.+=24
57500 JUMPE 02,I412 ;28407 C JUMP FOR VERT. DASH
57600 MOVE 3,ALF+5 ;(R3Q) ;28410 IF(J3.GT.0)GO TO 422
57700 JUMPG 02,I422 ; 28420 IF(R3Q.LE.RA)GO TO 413
57800 CAMG 3,BM
57900 JRST I413 ; 28425 C THIS IF P6 IS LESS THAN P3
58000 ; 28430 R3Q=R3Q-RJ
58100 MOVN 02,ALF+=11 ; 28440 GO TO 423
58200 JRST I423 ; 28500 422 IF(R3Q.GE.RA)GO TO 413
58300 I422: CAML 3,BM
58400 JRST I413 ; 28600 C JUMP IF ALL DONE
58500 MOVE 02,ALF+=11 ; 28700 R3Q=R3Q+RJ
58600 I423: FADRB 02,ALF+5 ;28710 423 IF(J4.NE.0)RD=RJY+RH*(R3Q-R3)
58700 MOVE 3,.COMM.+=25 ; J4 HAS TILT(SEE I402 -)
58800 JUMPE 3,.+5
58900 FSBR 02,.COMM.+4
59000 FMPR 02,RH
59100 FADR 02,BM+2
59200 MOVEM 02,ALF+7 ;28720 FINDS HEIGHT OF RIGHT SIDE OF SLOPE
59300 I414: MOVE 2,ALF+=12 ; 28800 414 CALL EXCH(L,ALF+=13)
59400 EXCH 2,ALF+=13
59500 MOVEM 2,ALF+=12
59600 MOVE 2,ALF+=11 ; 28810 CALL EXCH(RJ,ALF+=18)
59700 EXCH 2,ALF+=18
59800 MOVEM 2,ALF+=11 ; 28820 C EXCH. SPACE AND DASH SIZE.
59900 JRST I416 ; 28900 GO TO 416
60000 I412: MOVE 1,ALF+7 ;28950 412 IF(J4.GT.0)GO TO 424
60100 MOVE 02,.COMM.+=25
60200 JUMPG 02,I424 ; 28960 IF(RD.LE.OLDTOP)GO TO 413
60300 CAMG 1,OLDTOP
60400 JRST I413 ; 28970 RD=RD-RJ
60500 MOVN 02,ALF+=11
60600 FADRM 02,ALF+7 ; 28980 C THIS IF P5 IS LESS THAN P4.
60700 JRST I414 ; 28990 GO TO 414
60800 I424: CAML 1,OLDTOP ;29000 424 IF(RD.GE.OLDTOP)GO TO 413
60900 JRST I413 ; 29100 C JUMP IF DONE
61000 MOVE 02,ALF+=11 ; 29200 RD=RD+RJ
61100 FADRM 02,ALF+7 ; 29300 GO TO 414
61200 JRST I414 ; 29400 413 IF(J10.GT.0)GO TO 420
61300 I413: MOVE 02,J10
61400 JUMPG 02,I420
61500 SKIPN .COMM.+=32 ; 29410 IF(J11.EQ.0)RETURN
61600 JRA 16,(16)
61700 SKIPGE .COMM.+=24 ; 29415 IF(J3)RJ=-RJ
61800 MOVNS 00,ALF+=11 ; 29420 IF(L.EQ.3)R3Q=R3Q-RJ
61900 MOVEI 02,3
62000 CAME 02,ALF+=12
62100 JRST .+3
62200 MOVN 02,ALF+=11
62300 FADRM 02,ALF+5 ; 29430 RX=R8
62400 MOVE 02,.COMM.+=9
62500 MOVEM 02,ALF+=8
62600 SKIPGE .COMM.+=32 ; 29440 IF(J11)RX=-RX
62700 MOVNS 00,ALF+=8 ;29450 CALL LINX(R3Q,ALF+7,ALF+5,ALF+7+RX)
62800 MOVE 14,ALF+7
62900 FADR 14,ALF+=8
63000 JSA 16,LINX
63100 JUMP ALF+5
63200 JUMP ALF+7
63300 JUMP ALF+5
63400 JUMP 14 ; 29460 C PUTS BRACK END ON DASHED LINE. (P11=1 OR -1)
63500 ; 29470 RETURN
63600 JRA 16,(16) ; 29500 C NEXT FOR THICK DASHES
63700 ; 29600 420 J10=J10-1
63800 I420: SOS J10 ; 29650 RJ=1./DIS
63900 MOVE 3,PLTR+3 ;AC3=XDIS
64000 ;; FDVR 3,PLTR+2 ; 29700 IF(J3.EQ.0)GO TO 415
64100 MOVE 02,.COMM.+=24
64200 JUMPE 02,I415 ; 29800 R3Q=R3
64300 MOVE 02,.COMM.+4
64400 MOVEM 02,ALF+5 ; 29900 RJY=RJY+RJ
64500 FADRB 3,BM+2 ;29950 RD=RJY
64600 MOVEM 3,ALF+7 ;30000 GO TO 417
64700 JRST I417 ; 30100 415 R3Q=R3Q+RJ
64800 I415: FADRM 3,ALF+5 ; 30200 RD=RJX
64900 MOVE 02,ALF+=10
65000 MOVEM 02,ALF+7 ;30210 417 RJ=R8
65100 I417: MOVE 02,.COMM.+=9
65200 MOVEM 02,ALF+=11 ; 30220 RZ=R9
65300 MOVE 02,.COMM.+=10
65400 MOVEM 02,ALF+=18 ; 30230 C FOR THICK DASHES.
65500 ; 30300 GO TO 41
65600 JRST I41 ; 30600 407 RX=RD+POS
65700 I407: MOVE 02,ALF+7
65800 FADR 02,POSI+=9
65900 MOVEM 02,ALF+=8 ; 30700 OLDTOP=R5*RST7+POS
66000 MOVE 02,ALF+3
66100 FMPR 02,.COMM.+6
66200 FADR 02,POSI+=9
66300 MOVEM 02,OLDTOP
66400 MOVMS .COMM.+=9 ;***** R8=ABS(R8) NO NEG, TOLERATED!!! 2/78
66500 MOVE 3,.COMM.+=28 ; 30800 IF(J7.EQ.3)GO TO 140
66600 CAIN 3,3
66700 JRST I140 ; 30900 CALL NOZERO(R9)
66800 JSA 16,NOZERO
66900 JUMP .COMM.+=10
67000 CAMN 3,[-1] ; 31000 IF(J7.EQ.-1)GO TO 408
67100 JRST I408
67200 ; 31100 C FOR 'TR' J7=-2, 'ARPEGG' J7=-1, STRAIGHT LINES J7=0
67300 ; 31200 CC WHY THE IFIX???? RJX=IFIX(RHORZ(R6))
67400 JSA 16,RHORZ ; 31300 RJX=IFIX(ROFF(RHORZ(R6)))
67500 JUMP .COMM.+7
67600 MOVE 4,
67700 JSA 16,ROFF
67800 JUMP 4
67900 KIFIX 0,0 ;MOVE 4,
68000 ; JSA 16,IFIX
68100 ; JUMP 4
68200 FLTR 0,0 ;TLC 0,232000
68300 ;FADR 0,0
68400 MOVEM 00,ALF+=10
68500 ;31400 C ALL THIS CRAP SO IT WILL MATCH UP WITH P3 WHEN NECESSARY.
68600 MOVE 02,.COMM.+=28 ;31500 IF(J7.EQ.0)GO TO 42
68700 JUMPE 3,I42 ; 31600 OLDTOP=R9*RST7+RX
68800 MOVE 02,ALF+3
68900 FMPR 02,.COMM.+=10
69000 FADR 02,ALF+=8
69100 MOVEM 02,OLDTOP ; 31700 CALL NOZERO(R8)
69200 JSA 16,NOZERO
69300 JUMP .COMM.+=9 ; 31800 4041 RZ=RX
69400 I4041: MOVE 02,ALF+=8
69500 MOVEM 02,ALF+=18 ; 31900 RH=OLDTOP
69600 MOVE 14,OLDTOP
69700 MOVEM 14,RH ;32000 C SAVE FOR THICK WIGGLES
69800 JSA 16,LINES ;32100 CALL LINES(R3Q,ALF+=8,3)
69900 JUMP ALF+5
70000 JUMP ALF+=8
70100 JUMP [3] ; 32200 C DRAWS STRAIGHT LINES. ETC.
70200 MOVE 02,ALF+5 ; 32300 R9=R3Q
70300 MOVEM 02,.COMM.+=10 ;32400 RJ=OLDTOP
70400 MOVEM 14,ALF+=11 ; 32500 RW=3.*RSTJ2*R8
70500 MOVSI 02,202600
70600 FMPR 02,STF+=8
70700 FMPR 02,.COMM.+=9
70800 MOVEM 02,ALF+=9 ; 32600 RA=RW*2.5
70900 MOVSI 02,202500
71000 FMPR 02,ALF+=9
71100 MOVEM 02,BM ; P8=HORZ. WIGGLE SIZE; P9=VERT. SIZE
71200 I404: MOVE 02,BM ; 32800 404 R9=R9+RA
71300 FADRM 02,.COMM.+=10 ;32900 CALL LINES(R9,ALF+=11,2)
71400 JSA 16,LINES
71500 JUMP .COMM.+=10
71600 JUMP ALF+=11
71700 JUMP [2] ; 33000 R9=R9+RW
71800 MOVE 14,ALF+=9
71900 FADRB 14,.COMM.+=10 ;33100 CALL LINES(R9,ALF+=11,2)
72000 JSA 16,LINES
72100 JUMP .COMM.+=10
72200 JUMP ALF+=11
72300 JUMP [2]
72400 I405: MOVE ALF+=8 ; 33200 405 CALL EXCH(RX,ALF+=11)
72500 EXCH ALF+=11
72600 MOVEM ALF+=8
72700 CAMGE 14,ALF+=10 ; 33300 IF(R9.LT.RJX)GO TO 404
72800 JRST I404
72900 SKIPG .COMM.+=31 ; 33400 IF(J10.LE.0)RETURN
73000 JRA 16,(16)
73100 MOVE 2,PLTR+3 ;OLDTOP=XDIS
73200 MOVEM 02,OLDTOP ; 33500 RX=RZ+OLDTOP
73300 FADR 02,ALF+=18
73400 MOVEM 02,ALF+=8 ; 33600 OLDTOP=RH+OLDTOP
73500 MOVE 02,RH
73600 FADRM 02,OLDTOP
73700 SOS .COMM.+=31 ; 33700 J10=J10-1
73800 JRST I4041 ; 33800 GO TO 4041
73900 ; 33900 C P10= + NUM OF THICKNESSES TO WIGGLE
74000 I408: MOVE 02,ALF+=8 ;34100 408 IF(RX.GT.OLDTOP)CALL EXCH(RX,OLDTOP)
74100 CAMLE 2,OLDTOP
74200 EXCH 2,OLDTOP
74300 MOVEM 2,ALF+=8 ; 34200 RZ=R9*RSTJ2*5.96
74400 MOVE 02,STF+=8
74500 FMPR 02,.COMM.+=10
74600 FMPR 02,[5.96]
74700 MOVEM 02,ALF+=18 ;USE P9 TO SET WIGGLE WIDTH. P8 TO SET HGT.
74800 JSA 16,NOZERO ; 34400 CALL NOZERO(R8)
74900 JUMP .COMM.+=9 ; 34500 RD=R8*RST7*.5
75000 MOVE 02,ALF+3
75100 FMPR 02,.COMM.+=9
75200 FSC 02,777777
75300 MOVEM 02,ALF+7 ; 34600 RJ=RD
75400 MOVEM 02,ALF+=11 ; 34700 IF(RD.LT.1.)RD=1.
75500 MOVSI 02,201400
75600 CAMLE 02,ALF+7
75700 MOVEM 2,ALF+7 ; 34800 421 R9=RX
75800 I421: MOVE 02,ALF+=8
75900 MOVEM 02,.COMM.+=10 ;34900 RW=R3Q
76000 MOVE 02,ALF+5
76100 MOVEM 02,ALF+=9 ; 35000 RA=RZ+R3Q
76200 FADR 02,ALF+=18
76300 MOVEM 02,BM ;35100 CALL LINES(RW,.COMM.+=10,3)
76400 JSA 16,LINES
76500 JUMP ALF+=9
76600 JUMP .COMM.+=10
76700 JUMP [3] ; 35200 410 R9=R9+RJ
76800 I410: MOVE 02,ALF+=11
76900 FADRM 02,.COMM.+=10 ;35300 CALL LINES(RA,.COMM.+=10,2)
77000 JSA 16,LINES
77100 JUMP BM
77200 JUMP .COMM.+=10
77300 JUMP [2] ; 35400 R9=R9+RD
77400 MOVE 02,ALF+7
77500 FADRM 02,.COMM.+=10 ;35500 CALL LINES(RA,.COMM.+=10,2)
77600 JSA 16,LINES
77700 JUMP BM
77800 JUMP .COMM.+=10
77900 JUMP [2]
78000 MOVE BM ; 35600 CALL EXCH(RA,ALF+=9)
78100 EXCH ALF+=9
78200 MOVEM BM ; 35700 IF(R9.LT.OLDTOP)GO TO 410
78300 MOVE 02,OLDTOP
78400 CAMLE 02,.COMM.+=10
78500 JRST I410
78600 SKIPG .COMM.+=31 ; 35800 IF(J10.LE.0)RETURN
78700 JRA 16,(16) ; 35900 R3Q=R3Q+1./DIS
78800 MOVE 2,PLTR+3 ;XDIS
78900 FADRM 02,ALF+5
79000 SOS .COMM.+=31 ; 36000 J10=J10-1
79100 JRST I421 ; 36100 GO TO 421
79200 JRA 16,(16) ;36200 C VERTICAL WIGGLE P10=+ NUM OF THICKNESSES.
79300 END ; 36300 END